package com.yunke.dto.chat;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.*;

/**
 * 查看用户信息申请DTO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "查看用户信息申请")
public class YunkeCheckUserInfoDto {

    /**
     * 被查看者用户ID
     */
    @NotNull(message = "被查看者用户ID不能为空")
    @Schema(description = "被查看者用户ID", example = "1")
    private Long targetUserId;

    /**
     * 查看类型：1-查看联系方式 2-查看详细资料 3-查看私密信息
     */
    @NotNull(message = "查看类型不能为空")
    @Min(value = 1, message = "查看类型值不正确")
    @Max(value = 3, message = "查看类型值不正确")
    @Schema(description = "查看类型：1-查看联系方式 2-查看详细资料 3-查看私密信息", example = "1")
    private Integer checkType;

    /**
     * 申请理由
     */
    @NotBlank(message = "申请理由不能为空")
    @Size(min = 10, max = 200, message = "申请理由长度为10-200个字符")
    @Schema(description = "申请理由", example = "希望能够与您建立联系，进行进一步交流")
    private String applyReason;

    /**
     * 备注信息
     */
    @Size(max = 100, message = "备注信息不能超过100个字符")
    @Schema(description = "备注信息", example = "通过搭子活动认识")
    private String remark;
} 